package com.wisevar.thirdplatform.gateway.model.rechargeorder;

import com.wisevar.thirdplatform.gateway.model.common.CompanyIdParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

@Data
public class SyncRechargeOrderParam extends CompanyIdParam implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("平台充值订单编号")
    @NotEmpty(message = "平台充值订单编号不能为空")
    private String orderNo;

    @ApiModelProperty("充值渠道类型(bank:银行卡;alipay:支付宝;wx:微信;)")
    @NotEmpty(message = "充值渠道类型不能为空")
    private String channel;

    @ApiModelProperty("充值渠道名称:充值渠道下的不同子渠道名称，如充值渠道为银行卡（bank）时传平安银行、招商银行等")
    private String extChannelName;

    @ApiModelProperty("充值打款账号")
    @NotEmpty(message = "充值打款账号不能为空")
    private String accountNo;

    @ApiModelProperty("充值打款账户名称")
    @NotEmpty(message = "充值打款账户名称不能为空")
    private String accountName;

    @ApiModelProperty("充值收款账号")
    @NotEmpty(message = "充值收款账号不能为空")
    private String receiveAccountNo;

    @ApiModelProperty("充值收款账户名称")
    @NotEmpty(message = "充值收款账户名称不能为空")
    private String receiveAccountName;

    @ApiModelProperty("充值金额(实际到账，不包含服务费)，保留两位小数点")
    @NotNull(message = "充值金额不能为空")
    @Min(value = 0L, message = "不能小于{value}")
    private BigDecimal amount;

    @ApiModelProperty("手续费，保留两位小数点")
    @Min(value = 0L, message = "手续费手续费不能小于{value}")
    private BigDecimal serviceFee;

    @ApiModelProperty("充值时间，格式：yyyy-MM-dd HH:mm:ss")
    @NotEmpty(message = "充值时间不能为空")
    private String rechargeTime;

    @ApiModelProperty("备注")
    private String remarks;

}
